package com.jinmdz.fmis.core.constant;

/**
 * 字典编码枚举
 *
 * @author LiCongLu
 * @date 2020-01-14 09:03
 */
public enum EDictCode {
    EMPTY("", "空"),
    /**
     * 操作日志
     */
    OPERATION_LOG("operation_log", "操作日志"),
    /**
     * 业务日志
     */
    BUSINESS_LOG("business_log", "业务日志"),
    /**
     * 性别代码
     */
    SEX("sex", "性别代码"),
    /**
     * 性别代码(简单,只含男女)
     */
    SEX_SIMPLE("sex_simple", "性别代码(简单,只含男女)"),
    /**
     * 年龄类型
     */
    AGE_TYPE("age_type", "年龄类型"),
    /**
     * 证件类型
     */
    CERTIFICATES("certificates", "证件类型"),
    /**
     * 国籍
     */
    NATIONALITY("nationality", "国籍"),
    /**
     * 民族
     */
    NATION("nation", "民族"),
    /**
     * 逝者类型
     */
    TYPE_OF_DEATH("type_of_death", "逝者类型"),
    /**
     * 火化类型
     */
    CREMATION_TYPE("cremation_type", "火化类型"),
    /**
     * 遗体状态
     */
    REMAINS_STATE("remains_state", "遗体状态"),
    /**
     * 死亡原因
     */
    CAUSE_OF_DEATH("cause_of_death", "死亡原因"),
    /**
     * 惠民区域
     */
    HUIMIN_REGION("huimin_region", "惠民区域"),
    /**
     * 减免类型（遗体分类）
     */
    EXEMPTION_TYPE("exemption_type", "减免类型（遗体分类）"),
    /**
     * 接运方式
     */
    MODE_WITH_CARRY("mode_with_carry", "接运方式"),
    /**
     * 与逝者关系
     */
    RELATIONSHIP_WITH_DECEASED("relationship_with_deceased", "与逝者关系"),
    /**
     * 殡葬单位类型
     */
    FUNERAL_UNIT_TYPE("funeral_unit_type", "殡葬单位类型"),
    /**
     * 承办人类型
     */
    AGENT_TYPE("agent_type", "承办人类型"),
    /**
     * 车辆类型
     */
    TRANSPORT_CAR_TYPE("transport_car_type", "车辆类型"),
    /**
     * 车辆用途
     */
    TRANSPORT_CAR_USE("transport_car_use", "车辆用途"),
    /**
     * 车辆所属
     */
    CAR_BELONG("car_belong", "车辆所属"),
    /**
     * 接运任务状态
     */
    TRANSPORT_CAR_TASK_STATUS("transport_car_task_status", "接运任务状态"),
    /**
     * 冷藏柜类型
     */
    EQUIPMENT_TYPE("equipment_type", "冷藏柜类型"),
    /**
     * 冷藏状态
     */
    REFRIGERATED_STATE("refrigerated_state", "冷藏状态"),
    /**
     * 礼厅业务类型
     */
    HALL_BUSINESS_TYPE("hall_business_type", "礼厅业务类型"),
    /**
     * 礼厅状态
     */
    HALL_STATUS("hall_status", " 礼厅状态"),
    /**
     * 礼厅类型
     */
    HALL_TYPE("hall_type", "礼厅类型"),
    /**
     * 火化炉类型
     */
    FURNACE_TYPE("furnace_type", "火化炉类型"),
    /**
     * 火化任务状态
     */
    CREMATION_TASK_STATUS("cremation_task_status", "火化任务状态"),
    /**
     * 骨灰去向
     */
    ASHES_WHEREABOUTS("ashes_whereabouts", "骨灰去向"),
    /**
     * 骨灰处理方式
     */
    ASHES_TREATMENT("ashes_treatment", "骨灰处理方式"),
    /**
     * 结算类型
     */
    SETTLE_TYPE("settle_type", "结算类型"),
    /**
     * 结算付款方式
     */
    PAY_TYPE("pay_type", "结算付款方式"),
    /**
     * 火化证打印操作类型
     */
    CREMATION_CERTIFICATE_PRINTING_OPERATION_TYPE("cremation_certificate_printing_operation_type", "火化证打印操作类型"),
    /**
     * 文档类型
     */
    DOCUMENT_TYPE("document_type", "文档类型"),
    /**
     * 死亡证明出具单位
     */
    FUNERAL_CERTIFICATE_UNIT("funeral_certificate_unit", "死亡证明出具单位"),
    /**
     * 挂账单位
     */
    ACCOUNT_UNIT("account_unit", "挂账单位"),
    /**
     * 机构类型
     */
    ORGANIZATION_TYPE("organization_type", "机构类型"),
    /**
     * 角色分类
     */
    ROLE_TYPE("role_type", "角色分类"),
    /**
     * 发票状态
     */
    INVOICE_STATE("invoice_state", "发票状态"),
    /**
     * 遗体到馆存放
     */
    BODY_DEPOSITED_TYPE("body_deposited_type", "遗体到馆存放"),
    /**
     * 联系人类型
     */
    REC_RELATION_TYPE("rec_relation_type", "联系人类型"),
    /**
     * 接运信息状态类型
     */
    REC_TASK_STATE_TYPE("rec_task_state_type", "接运信息状态类型"),
    /**
     * 来源
     */
    REC_SOURCE_TYPE("rec_source_type", "来源"),

    /**
     * 遗体到馆去向
     */
    WHEREABOUT_TYPE("whereabout_type", "遗体到馆去向"),

    /**
     * 整容插花状态
     */
    FACE_LIFT_STATUS("face_lift_status", "整容插花状态"),

    /**
     * 员工工作任务类型
     */
    TASK_TYPE("task_type", "员工工作任务类型"),

    /**
     * 休息室类型
     */
    HOME_TYPE("home_type", "休息室类型");

    /**
     * 枚举值
     */
    private String code;
    /**
     * 枚举信息
     */
    private String message;

    private EDictCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public EDictCode setCode(String code) {
        this.code = code;
        return this;
    }

    public String getMessage() {
        return message;
    }

    public EDictCode setMessage(String message) {
        this.message = message;
        return this;
    }

    /**
     * 按照Code获取枚举
     *
     * @param code 枚举值
     * @return
     * @author LiCongLu
     * @date 2020-01-14 09:16
     */
    public static EDictCode getEDictCode(String code) {
        if (code != null) {
            for (EDictCode codeEnum : EDictCode.values()) {
                if (codeEnum.getCode() != null) {
                    if (codeEnum.getCode().equals(code)) {
                        return codeEnum;
                    }
                }
            }
        }
        return EDictCode.EMPTY;
    }

    /**
     * 判断枚举与Code值是否相等
     *
     * @param code 枚举值
     * @return
     * @author LiCongLu
     * @date 2020-01-14 09:19
     */
    public boolean equalEnum(String code) {
        return this.getCode().equals(code);
    }
}
